import Node from './Node';

class Page {
  config: any;
  nodeMap = new Map<string, Node>();
  constructor(config: any) {
    console.log('Page', config);
    this.config = config;
    this.init();
  }

  init() {
    /**
     * nodeMap 中包含以下数据
     * 1. 面板
     * 2. 拓扑图
     * 3. 一次电气路图
     * 4. 场景
     */
    this.initPanelNodes();
    this.initStageNodes();
    console.log(this.nodeMap);
  }

  initPanelNodes() {
    const { nodeMap } = this;
    this.config.panel.layers.forEach((o: any) => {
      nodeMap.set(o.id, new Node(o));
    });
  }

  initStageNodes() {
    const { nodeMap } = this;
    this.config.stage.layers.forEach((o: any) => {
      nodeMap.set(o.id, new Node(o));
    });
  }

  getNode(id: string) {
    return this.nodeMap.get(id);
  }

  dispose() {
    this.nodeMap.clear();
    this.config = null;
  }
}

export default Page;
